using System;

/// <summary>
/// TrueSync的通信接口。
/// </summary>
public interface ICommunicator
{
    /// <summary>
    /// 返回本地播放器和服务器之间的往返时间。
    /// </summary>
	int RoundTripTime();

    /// <summary>
    /// 引发一个发送给所有其他玩家的自定义事件。
    /// </summary>
    /// <param name="eventCode">自定义事件的代码</param>
    /// <param name="message">要在事件主体中发送的消息</param>
    /// <param name="reliable">如果是真的，它应该有一个保证交货</param>
    /// <param name="toPlayers"></param>
	void OnRaiseEvent(byte eventCode, object message, bool reliable, int[] toPlayers);

    /// <summary>
    /// 添加事件侦听器以处理接收到的自定义事件。
    /// </summary>
    /// <param name="onEventReceived">OnEventReceived委托的实现。</param>
	void AddEventListener(OnEventReceived onEventReceived);
}
